<?php
namespace Home\Controller;
use Think\Controller;

/**
 * 微信支付
 */
class WxpayController extends Controller{
  /**
     * 微信 公众号jssdk支付
     */
    public function weixinpay_js($out){
        // 此处根据实际业务情况生成订单 然后拿着订单去支付

        // 用时间戳虚拟一个订单号  （请根据实际业务更改）
        $out_trade_no=$out;
        // 组合url
        $url=U('Api/Weixinpay/pay',array('out_trade_no'=>$out_trade_no));
        // 前往支付
        //file_put_contents('wwwwwww.txt','1111');
        redirect($url);
    }
  /**
     * 微信 公众号jssdk支付
     */
    public function weixinpay_jsss($out){
        // 此处根据实际业务情况生成订单 然后拿着订单去支付

        // 用时间戳虚拟一个订单号  （请根据实际业务更改）
        $out_trade_no=$out;
        // 组合url
        $url=U('Api/Weixinpay/pay1',array('out_trade_no'=>$out_trade_no));
        // 前往支付
        redirect($url);
    }
    public function notify_l(){
        $ii=$_GET['order'];
        $return=D('order')->where(array('order'=>$ii))->setField('status',1);
        if($return){
                $rees=D('order')->where(array('order'=>$ii))->find();
                //开启事务
                $model = M();
                $model -> startTrans();
                //添加短信消息    解开注释的话下面有个事物要加
                //找出学生的手机号
                /*$stuMobile = D('UserMember') ->field('mobile,nickname') ->where(array('id' =>session('uid'))) ->find();
                $r7 = D('Message') ->sendSms($stuMobile['mobile'],"您已成功预定".$rees['num']."节".$rees['title']."课程，"."共".$rees['price']."元，明细可在账户余额中查看，具体课程内容请在“我的课程”中查看，课程老师收到预定信息后会和您联系，请留意。");*/
                //找出老师的手机号
                $datae = D('Course') ->where(array('id' => $rees['cid']))->find();
                $mobile    = D('UserMember') ->field('mobile') ->where(array('id' =>$datae['uid'])) ->find();
                $r6 = D('Message') ->sendSms($mobile['mobile'],"您收到了新的预定，请登录查看详细内容。");
                //添加流水明细
                $data['uid']         = 0;
                $data['change']      = $rees['price'];//??
                $data['action']      = 2;
                $data['obj']         = session('uid');
                $data['create_time'] = time();
                $r0 = D('Account') -> addAccount($data);

                //lkl屏蔽修改平台账户余额
                $andmin = D('UserMember') -> lock() -> field('account') -> where(array('id' => 0)) -> find();
                $up['id'] = 0;
                $up['account'] = $andmin['account'] + floatval($rees['price']);
                $r1 = D('UserMember') -> where(array('id' => 0)) -> save($up);

                //给学生发送系统信息
                $msg_s['sid']   = 0;
                $msg_s['rid']   = session('uid');
                $msg_s['content'] = '您已成功预定'.getNicknameByCid($rees['cid']).'的'.getCourse($rees['cid']).'课程，请等待老师的联系或主动联系老师，并关注课程安排，如长时间未收到老师的信息，您可以选择退订。';
                // "您已成功预定".$rees['num']."节".$rees['title']."课程，"."共".$rees['price']."元，明细可在账户余额中查看，具体课程内容请在“我的课程”中查看，课程老师收到预定信息后会和您联系，请留意。";
                $msg_s['type']  = 4;
                $msg_s['time']  = time();
                $r2 = D('Message') -> add($msg_s);

                //给老师发送系统信息
                $msg_t['sid']   = 0;
                $msg_t['rid']   = $rees['tid'];//??
                $msg_t['content'] = '您收到了'.getUserMember($msg_s['rid']).'关于'.getCourse($rees['cid']).'课的预订，具体课程内容请在我的课程中查看，请尽快联系您的学生，以免ta等待太久退订哦！';             
                // "您收到了关于".$rees['title']."的预订，联系方式为：".$rees['mobile']."具体课程内容请在我的课程中查看，请尽快联系您的学生，以免ta等待太久退订哦！";
                $msg_t['type']  = 4;
                $msg_t['time']  = time();
                $r3 = D('Message') -> add($msg_t);

                //给学生添加“我的课程”
                $mycourse_s['cid']         = $rees['cid'];
                $mycourse_s['uid']         = session('uid');
                $mycourse_s['sum']         = $rees['num'];//??
                $mycourse_s['createtime']  = time();
                $mycourse_s['cancel_time'] = time();
                $mycourse_s['cancel']      = 0;
                $mycourse_s['order']=$ii;
                $r4 = D('Mycourse') -> add($mycourse_s);

                //添加上课记录//??
                for ($i = intval($rees['num']); $i > 0 ; $i--) {
                    $records[] = array('cid' => $rees['cid'], 'uid' => session('uid'),'order_id'=>$rees['id']);
                }
                $r5 = D('CourseRecord') -> addAll($records);

                //判断是否全部成功
				
				/* file_put_contents('aa.txt',var_export(array($r0,$r1,$r2,$r3,$r4,$r5,$r6),true)); */
				
                if ($r0 && $r1 && $r2 && $r3 && $r4 && $r5 && $r6) {
                //if ($r0 && $r2 && $r3 && $r4 && $r5 && $r6) {//lkl修改条件

                    //提交事务
                    $model -> commit();
                    $this -> success('课程预定成功',U('Mycourse/course'));
                } else {
                    //回滚
                    $model -> rollback();
                    $this -> error('没有成功哦，好像哪里出问题了',U('UserMember/userlist'));
                }
        }
    }
    public function notify_s(){
        $ii=$_GET['order'];
        $return=D('Guest')->where(array('order'=>$ii))->setField('status',2);
        if($return){
            $order = $ii;
            $model = M();
            $model -> startTrans();
            $result = D('Guest') ->where(array('order' =>$order))->find();
            //添加平台流水
            $data['uid']         = session('uid');
            $data['change']      = $result['price'];
            $data['action']      = 2;
            $data['obj']         = 0;
            $data['create_time'] = time();
            $res0 = D('Account') -> addAccount($data);
            $return = D('Guest') ->where(array('order' =>$ii)) ->find();
            //查出用户数据
            $user  = D('UserMember') ->where(array('id'=>$return['uid']))->find();
           if ($user['vip_endtime'] < time()) {
                //到期日为当前时间加上购买的时间
                $endtime = $return['become_time'] + time();
            } else {
                //到期日为会员结束时间加上购买的时间
                $endtime = intval($user['vip_endtime']) + $return['become_time'];
            }

            //更新会员到期日
            $update['id'] = $return['uid'];
            $update['vip_endtime'] = $endtime;
            $res1 = D('UserMember') -> where(array('id' =>$update['id'])) ->save(array('vip_endtime' =>$update['vip_endtime']));

            //发送系统信息
            $msg['sid'] = 0;
            $msg['rid'] = session('uid');
            $msg['content'] = "您开通会员成功";
            $msg['type'] = 4;
            $res2 = D('Admin/Message') -> addMessage($msg);

            //判断事务是否执行
            if ($res0 && $res2) {
                //提交
                $model -> commit();
                $this -> success('充值成功',U('index/index'));die;
            } else {
                //回滚
                $model -> rollback();
                $this -> error('出错了，请稍后再试');
            }
        }
    }
    public function notify(){
        
    }
}
?>